+2002-02-09 Matthias Clasen <matthias@local>
+
+ * gtk/gtknotebook.c (gtk_notebook_set_focus_child): Avoid segfault
+ for selectable tab labels (even without a segfault, they make the
+ notebook almost unusable, though). (#69985)
+
+2002-02-08 Matthias Clasen <matthias@local>
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path): Silently do
+ nothing if the parent is not a menu. (#66492)
+
+2002-02-06 Matthias Clasen <matthiasc@poet.de>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_from_widget,
+ gtk_item_factory_path_from_widget): Try fetching the return value
+ from menu_item->submenu as a fallback. (#69020)
+
Sat Feb 9 22:57:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level): convert
+2002-02-09 Matthias Clasen <matthias@local>
+
+ * gtk/gtknotebook.c (gtk_notebook_set_focus_child): Avoid segfault
+ for selectable tab labels (even without a segfault, they make the
+ notebook almost unusable, though). (#69985)
+
+2002-02-08 Matthias Clasen <matthias@local>
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path): Silently do
+ nothing if the parent is not a menu. (#66492)
+
+2002-02-06 Matthias Clasen <matthiasc@poet.de>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_from_widget,
+ gtk_item_factory_path_from_widget): Try fetching the return value
+ from menu_item->submenu as a fallback. (#69020)
+
Sat Feb 9 22:57:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level): convert
+2002-02-09 Matthias Clasen <matthias@local>
+
+ * gtk/gtknotebook.c (gtk_notebook_set_focus_child): Avoid segfault
+ for selectable tab labels (even without a segfault, they make the
+ notebook almost unusable, though). (#69985)
+
+2002-02-08 Matthias Clasen <matthias@local>
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path): Silently do
+ nothing if the parent is not a menu. (#66492)
+
+2002-02-06 Matthias Clasen <matthiasc@poet.de>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_from_widget,
+ gtk_item_factory_path_from_widget): Try fetching the return value
+ from menu_item->submenu as a fallback. (#69020)
+
Sat Feb 9 22:57:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level): convert
+2002-02-09 Matthias Clasen <matthias@local>
+
+ * gtk/gtknotebook.c (gtk_notebook_set_focus_child): Avoid segfault
+ for selectable tab labels (even without a segfault, they make the
+ notebook almost unusable, though). (#69985)
+
+2002-02-08 Matthias Clasen <matthias@local>
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path): Silently do
+ nothing if the parent is not a menu. (#66492)
+
+2002-02-06 Matthias Clasen <matthiasc@poet.de>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_from_widget,
+ gtk_item_factory_path_from_widget): Try fetching the return value
+ from menu_item->submenu as a fallback. (#69020)
+
Sat Feb 9 22:57:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level): convert
+2002-02-09 Matthias Clasen <matthias@local>
+
+ * gtk/gtknotebook.c (gtk_notebook_set_focus_child): Avoid segfault
+ for selectable tab labels (even without a segfault, they make the
+ notebook almost unusable, though). (#69985)
+
+2002-02-08 Matthias Clasen <matthias@local>
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path): Silently do
+ nothing if the parent is not a menu. (#66492)
+
+2002-02-06 Matthias Clasen <matthiasc@poet.de>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_from_widget,
+ gtk_item_factory_path_from_widget): Try fetching the return value
+ from menu_item->submenu as a fallback. (#69020)
+
Sat Feb 9 22:57:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level): convert
+2002-02-09 Matthias Clasen <matthias@local>
+
+ * gtk/gtknotebook.c (gtk_notebook_set_focus_child): Avoid segfault
+ for selectable tab labels (even without a segfault, they make the
+ notebook almost unusable, though). (#69985)
+
+2002-02-08 Matthias Clasen <matthias@local>
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path): Silently do
+ nothing if the parent is not a menu. (#66492)
+
+2002-02-06 Matthias Clasen <matthiasc@poet.de>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_from_widget,
+ gtk_item_factory_path_from_widget): Try fetching the return value
+ from menu_item->submenu as a fallback. (#69020)
+
Sat Feb 9 22:57:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level): convert
+2002-02-09 Matthias Clasen <matthias@local>
+
+ * gtk/gtknotebook.c (gtk_notebook_set_focus_child): Avoid segfault
+ for selectable tab labels (even without a segfault, they make the
+ notebook almost unusable, though). (#69985)
+
+2002-02-08 Matthias Clasen <matthias@local>
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path): Silently do
+ nothing if the parent is not a menu. (#66492)
+
+2002-02-06 Matthias Clasen <matthiasc@poet.de>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_from_widget,
+ gtk_item_factory_path_from_widget): Try fetching the return value
+ from menu_item->submenu as a fallback. (#69020)
+
Sat Feb 9 22:57:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_build_level): convert
GtkItemFactory*
gtk_item_factory_from_widget (GtkWidget *widget)
{
+ GtkItemFactory *ifactory;
+
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
- return gtk_object_get_data_by_id (GTK_OBJECT (widget), quark_item_factory);
+ ifactory = gtk_object_get_data_by_id (GTK_OBJECT (widget), quark_item_factory);
+ if (ifactory == NULL && GTK_IS_MENU_ITEM (widget) &&
+ GTK_MENU_ITEM (widget)->submenu != NULL)
+ {
+ GtkWidget *menu = GTK_MENU_ITEM (widget)->submenu;
+ ifactory = gtk_object_get_data_by_id (GTK_OBJECT (menu), quark_item_factory);
+ }
+
+ return ifactory;
}
/**
G_CONST_RETURN gchar*
gtk_item_factory_path_from_widget (GtkWidget *widget)
{
+ gchar* path;
+
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
- return gtk_object_get_data_by_id (GTK_OBJECT (widget), quark_item_path);
+ path = gtk_object_get_data_by_id (GTK_OBJECT (widget), quark_item_path);
+
+ if (path == NULL && GTK_IS_MENU_ITEM (widget) &&
+ GTK_MENU_ITEM (widget)->submenu != NULL)
+ {
+ GtkWidget *menu = GTK_MENU_ITEM (widget)->submenu;
+ path = gtk_object_get_data_by_id (GTK_OBJECT (menu), quark_item_path);
+ }
+
+ return path;
}
/**
gtk_widget_set_accel_path (widget, NULL, NULL);
/* install accelerators associated with new path */
- if (widget->parent)
+ if (widget->parent && GTK_IS_MENU (widget->parent))
{
GtkMenu *menu = GTK_MENU (widget->parent);
g_assert_not_reached ();
return FALSE;
}
-
+
static void
gtk_notebook_set_focus_child (GtkContainer *container,
GtkWidget *child)
if (page_child->parent == GTK_WIDGET (container))
{
GList *list = gtk_notebook_find_child (notebook, page_child, NULL);
- GtkNotebookPage *page = list->data;
-
- if (page->last_focus_child)
- g_object_remove_weak_pointer (G_OBJECT (page->last_focus_child), (gpointer *)&page->last_focus_child);
-
- page->last_focus_child = GTK_WINDOW (toplevel)->focus_widget;
- g_object_add_weak_pointer (G_OBJECT (page->last_focus_child), (gpointer *)&page->last_focus_child);
+ if (list != NULL)
+ {
+ GtkNotebookPage *page = list->data;
- break;
+ if (page->last_focus_child)
+ g_object_remove_weak_pointer (G_OBJECT (page->last_focus_child), (gpointer *)&page->last_focus_child);
+
+ page->last_focus_child = GTK_WINDOW (toplevel)->focus_widget;
+ g_object_add_weak_pointer (G_OBJECT (page->last_focus_child), (gpointer *)&page->last_focus_child);
+
+ break;
+ }
}
page_child = page_child->parent;